package br.com.utdd.cadastro.teste;

import java.util.ArrayList;
import java.util.List;

import junit.framework.TestCase;
import br.com.utdd.cadastro.dao.UsuarioDAO;
import br.com.utdd.cadastro.dto.UsuarioDTO;

public class UsuarioTeste extends TestCase {

	public UsuarioTeste(){
		super();
	}
	
	protected void setUp(){
		System.out.println("Iniciando...");
	}
	
	public void testeUsuario() {
		
		UsuarioDTO expectedUser = new UsuarioDTO();
		expectedUser.setNome("Teste Junit11");
		expectedUser.setDataNascimento("31/12/1982");
		expectedUser.setEmail("bsvtelecom@gmail.com");
		expectedUser.setSexo("M");
		
		System.out.println("Nome: " +expectedUser.getNome());
		System.out.println("Data: " + expectedUser.getDataNascimento());
		System.out.println("Email: " + expectedUser.getEmail());
		System.out.println("Sexo: " + expectedUser.getSexo());
		System.out.println("Id: " + expectedUser.getId());
		
		UsuarioDAO dao = new UsuarioDAO();
		dao.incluir(expectedUser);
		
		List<UsuarioDTO> lista = new ArrayList<UsuarioDTO>();
		UsuarioDAO dao2 = new UsuarioDAO();
		lista = dao2.listar();
		
		System.out.println("");
		for (UsuarioDTO usuarioDTO : lista) {
			System.out.println(expectedUser.getNome());
			System.out.println(usuarioDTO.getNome());
			if (expectedUser.getNome().equals(usuarioDTO.getNome())) {
				System.out.println("Achou! " + usuarioDTO.getNome());
				System.out.println("Id:  " + usuarioDTO.getId());
				expectedUser.setId(usuarioDTO.getId());
				break;
			}
		}
		System.out.println("");
		UsuarioDTO actualUser = null;
		if (expectedUser.getId() != null) {
			actualUser = new UsuarioDTO();
			actualUser.setId(expectedUser.getId());
			actualUser = dao.obterUsuario(actualUser);
			
			System.out.println("Usuario Obtido!");
			System.out.println("Nome: " + actualUser.getNome());
			System.out.println("Data: " + actualUser.getDataNascimento());
			System.out.println("Email: " + actualUser.getEmail());
			System.out.println("Sexo: " + actualUser.getSexo());
			System.out.println("Id: " + actualUser.getId());
		}
		
		if (actualUser != null) {
			System.out.println("Iniciando Teste AssertEquals");
			assertEquals(expectedUser.getNome(), actualUser.getNome());
			assertEquals(expectedUser.getDataNascimento(), actualUser.getDataNascimento());
			assertEquals(expectedUser.getEmail(), actualUser.getEmail());
			assertEquals(expectedUser.getSexo(), actualUser.getSexo());
			System.out.println("Finalizando Teste AssertEquals");
		}
	}
	
	
	
	
	protected void tearDown(){
		System.out.println("Finalizando Tudo...");
	}


}
